<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>
        console.log(1);
        document.onclick = function () {
            console.log('click');
        }
        console.log(2);
        setTimeout(function () {
            console.log(3);
        }, 3000)
        // 1,2 (3和click执行顺序取决于触发时间)

        //          js执行机制
        // js会把任务分成同步任务和异步任务
        // 回调函数 键鼠事件 资源加载（load）都归属异步任务
        // 任务优先级 同步 > 异步
        // 同步任务放到主线程执行站然后执行同步任务
        // 异步任务通过异步进程处理后放入异步任务队列
        // 异步任务队列内 执行任务同样分先后顺序 取决于异步任务类型的触发时间
        // 主线程会不断重复检查执行异步任务队列内有无新的异步任务 这个过程称之为事件循环eventloop
    </script>
</body>

</html>